<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="lib.css" type='text/css' />
<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
<link rel='start' href='../index.html' title='Python documentation Index' />
<link rel="first" href="lib.html" title='Python library Reference' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='index' href='genindex.html' title='Index' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="testresult-objects.html" />
<link rel="prev" href="testcase-objects.html" />
<link rel="parent" href="module-unittest.html" />
<link rel="next" href="testresult-objects.html" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name='aesop' content='information' />
<title>23.3.6 TestSuite Objects </title>
</head>
<body>
<div class="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="23.3.5 testcase Objects"
  href="testcase-objects.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="23.3 unittest  "
  href="module-unittest.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="23.3.7 testresult Objects"
  href="testresult-objects.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="testcase-objects.html">23.3.5 TestCase Objects</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-unittest.html">23.3 unittest  </a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="testresult-objects.html">23.3.7 TestResult Objects</a>
</div>
<hr /></div>
</div>
<!--End of Navigation Panel-->

<h2><a name="SECTION0025360000000000000000"></a><a name="testsuite-objects"></a>
<br>
23.3.6 TestSuite Objects
            
</h2>

<p>
<tt class="class">TestSuite</tt> objects behave much like <tt class="class">TestCase</tt> objects,
except they do not actually implement a test.  Instead, they are used
to aggregate tests into groups of tests that should be run together.
Some additional methods are available to add tests to <tt class="class">TestSuite</tt>
instances:

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-5036' xml:id='l2h-5036' class="method">addTest</tt></b>(</nobr></td>
  <td><var>test</var>)</td></tr></table></dt>
<dd>
  Add a <tt class="class">TestCase</tt> or <tt class="class">TestSuite</tt> to the suite.
</dl>

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-5037' xml:id='l2h-5037' class="method">addTests</tt></b>(</nobr></td>
  <td><var>tests</var>)</td></tr></table></dt>
<dd>
  Add all the tests from an iterable of <tt class="class">TestCase</tt> and
  <tt class="class">TestSuite</tt> instances to this test suite.

<p>
This is equivalent to iterating over <var>tests</var>, calling
  <tt class="method">addTest()</tt> for each element.
</dl>

<p>
<tt class="class">TestSuite</tt> shares the following methods with <tt class="class">TestCase</tt>:

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-5038' xml:id='l2h-5038' class="method">run</tt></b>(</nobr></td>
  <td><var>result</var>)</td></tr></table></dt>
<dd>
  Run the tests associated with this suite, collecting the result into
  the test result object passed as <var>result</var>.  Note that unlike
  <tt class="method">TestCase.run()</tt>, <tt class="method">TestSuite.run()</tt> requires the
  result object to be passed in.
</dl>

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-5039' xml:id='l2h-5039' class="method">debug</tt></b>(</nobr></td>
  <td><var></var>)</td></tr></table></dt>
<dd>
  Run the tests associated with this suite without collecting the result.
  This allows exceptions raised by the test to be propagated to the caller
  and can be used to support running tests under a debugger.
</dl>

<p>
<dl><dt><table cellpadding="0" cellspacing="0"><tr valign="baseline">
  <td><nobr><b><tt id='l2h-5040' xml:id='l2h-5040' class="method">countTestCases</tt></b>(</nobr></td>
  <td><var></var>)</td></tr></table></dt>
<dd>
  Return the number of tests represented by this test object, including
  all individual tests and sub-suites.
</dl>

<p>
In the typical usage of a <tt class="class">TestSuite</tt> object, the <tt class="method">run()</tt>
method is invoked by a <tt class="class">TestRunner</tt> rather than by the end-user
test harness.

<p>

<div class="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="23.3.5 testcase Objects"
  href="testcase-objects.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="23.3 unittest  "
  href="module-unittest.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="23.3.7 testresult Objects"
  href="testresult-objects.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="testcase-objects.html">23.3.5 TestCase Objects</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="module-unittest.html">23.3 unittest  </a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="testresult-objects.html">23.3.7 TestResult Objects</a>
</div>
</div>
<hr />
<span class="release-info">Release 2.5.1, documentation updated on 18th April, 2007.</span>
</div>
<!--End of Navigation Panel-->
<address>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</address>
</body>
</html>
